<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      lang="en-US">
<head>
    <title>Cygwin/X - Development - xwinclip - Change Log</title>
    <meta http-equiv="Content-Type"
          content="text/html; charset=utf-8" />
    <link rel="stylesheet"
          type="text/css"
          href="../../cygx.css" />
    <link rel="icon"
          type="image/ico"
          href="../../favicon.ico" />
    <meta name="Author"
          content="Harold L Hunt II" />
    <meta name="keywords"
          content="Cygwin, X, x window system, xserver, x-server, Cygwin/X, xwinclip, clipboard, cut, paste, copy, primary, secondary" />
    <meta name="description"
          content="Cygwin/X - Development - xwinclip - Change Log" />
</head>

<body>
    <!--#include virtual="../../cygx-header.html" -->

    <h2>Cygwin/X - Development - xwinclip - Change Log</h2>

    <p>Last updated: 2003-12-02 0130 EST (Harold L Hunt II)</p>

    <p>xwinclip binary and source code releases are available via
    the sources.redhat.com ftp
    <a href="http://cygwin.com/mirrors.html">mirror network</a> in
    the pub/cygwin/xfree/devel/xwinclip/ directory. You may wish to
    note the desired filename in the links below, then download
    from your <a href="http://cygwin.com/mirrors.html">closest
    mirror</a>.</p><!-- Change log entry template -->
    <!--
        <h4></h4>
        <table>
        <tbody>

        <tr><td>Released: 2003-12-12 2032 EST</td></tr>

        <tr><td>Cygwin setup.exe package: xwinclip-1.2.0-</td></tr>

        <tr><td>Changes:</td></tr>

        <tr>
        <td>
        <ul>

        <li></li>

        </ul>
        </td>
        </tr>
        </tbody>
        </table>
        -->

    <h4>1.2.0-1</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2003-10-30 0147 EST</td>
            </tr>

            <tr>
                <td>Cygwin setup.exe package: xwinclip-1.2.0-1</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>Added a build script for creating the
                        Cygwin package. Add a README file for
                        /usr/X11R6/share/doc/Cygwin. Rename the
                        package from XFree86-xwinclip to xwinclip.
                        (Harold L Hunt II)</li>

                        <li>xevents.c, xwinclip.c - Backport of the
                        patch that fixes the crash with large text,
                        enables non-ascii copy and paste, and adds
                        -nounicodeclipboard command-line parameter.
                        (Kensuke Matsuzaki)</li>

                        <li>Fix compilation warnings for printf ()
                        calls. (Harold L Hunt II)</li>

                        <li>Imakefile - Enable builds outside the
                        xc/programs tree (use xmkmf). (Harold L
                        Hunt II)</li>

                        <li>configure.ac, Makefile.am, AUTHORS,
                        ChangeLog, COPYING, INSTALL, NEWS, README,
                        VERSION - New automake/autoconf build
                        system. (Harold L Hunt II)</li>

                        <li>Locally, I renamed the Test08 release
                        as 1.0.0, made a build that worked outside
                        of the xc/programs tree and called it
                        1.0.1. Fixed compilation warnings and
                        applied Kensuke's patch and called it
                        1.1.0. Finally, I added the
                        automake/autoconf build system and called
                        it 1.2.0. I will probably post these local
                        tarballs later. (Harold L Hunt II)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test08</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2003-01-12 2032 EST</td>
            </tr>

            <tr>
                <td>Cygwin setup.exe package:
                XFree86-xwinclip-4.2.0-8</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test08.exe.bz2">
                xwinclip-Test08.exe.bz2</a> (10 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20030112-2032.tar.bz2">
                xwinclip-20030112-2032.tar.bz2</a> (10 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>Add support for ``-display'' and
                        ``--display'' command-line parameters.
                        (Jeremy Wilkins)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test07</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2002-12-29 2344 EST</td>
            </tr>

            <tr>
                <td>Cygwin setup.exe package:
                XFree86-xwinclip-4.2.0-7</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test07.exe.bz2">
                xwinclip-Test07.exe.bz2</a> (6 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20021229-2344.tar.bz2">
                xwinclip-20021229-2344.tar.bz2</a> (17 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>wndproc.c - Pass NULL to PeekMessage
                        instead of the hwnd for our messaging
                        window, since this was causing some vital
                        messages to be filtered out. (Benjamin
                        Riefenstahl)</li>

                        <li>xwinclip.c - Use setjmp and longjmp to
                        gracefully catch IO Errors and restart the
                        process from the entry point. This should
                        allow xwinclip to continue running when the
                        X Server resets. (Chris Twiner)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test06</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2002-06-22 0007 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test06.exe.bz2">
                xwinclip-Test06.exe.bz2</a> (6 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20020622-0007.tar.bz2">
                xwinclip-20020622-0007.tar.bz2</a> (10 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>xevents.c, xevents.h, xwinclip.c - Add
                        real support for COMPOUND_TEXT, TARGETS,
                        and UTF8_STRING selection types. Grab
                        clipboard contents in Unicode, if
                        supported, convert to multi-byte character
                        set, then stick the result into the
                        appropriate target. This allows Japanese
                        text to be transferred via xwinclip. Other
                        eastern languages (Korean, Chinese, etc.)
                        may also work. (Matsuzaki Kensuke)</li>

                        <li>xwinclip.c - Add a UnicodeSupport
                        function to check if we have Unicode
                        support or not. Currently this is done by
                        just checking if we are on an NT-based
                        platform or not. (Harold L Hunt II)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test05</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2002-06-12 1316 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test05.exe.bz2">
                xwinclip-Test05.exe.bz2</a> (4 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20020612-1316.tar.bz2">
                xwinclip-20020612-1316.tar.bz2</a> (8 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>xwinclip.c - Break this single source
                        file into xwinclip.c, textconv.c,
                        textconv.h, wndproc.c, wndproc.h,
                        xevents.c, and xevents.h. (Harold L Hunt
                        II)</li>

                        <li>xwinclip.c - Pause and loop to retry,
                        after a delay, if we fail while opening the
                        display. (Harold L Hunt II)</li>

                        <li>xwinclip.c - Remove a call to
                        XSelectInput that was operating on our own
                        window and always returning BadWindow.
                        Apparently the event mask for our own
                        window has to be changed with
                        XChangeWindowAttributes. I've put a #if0'd
                        example of using XChangeWindowAttributes
                        into the file. (Harold L Hunt II)</li>

                        <li>xwinclip.c - Remove a call to XFlush.
                        It doesn't seem necessary to flush any
                        events in our queue before we start
                        processing events. However, I may have read
                        somewhere that we have to do this, so I may
                        have to re-add this call to XFlush later.
                        (Harold L Hunt II)</li>

                        <li>xwinclip.c - Create an atom for
                        WM_DELETE_WINDOW. This will get is an X
                        event when a window manager is about to
                        kill us. However, it does nothing for the
                        case where the server is told to GiveUp ().
                        (Harold L Hunt II)</li>

                        <li>xwinclip.c - In CreateMessagingWindow,
                        add a call to ShowWindow passing SW_HIDE
                        and add a call to UpdateWindow. I'm not
                        sure, but these may be necessary to kick
                        off Windows event processing. On a strange
                        note - the current xwinclip doesn't process
                        any Windows messages. (Harold L Hunt
                        II)</li>

                        <li>xevents.c - Add handling for
                        WM_DELETE_WINDOW. (Harold L Hunt II)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test04</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2002-06-10 2055 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test04.exe.bz2">
                xwinclip-Test04.exe.bz2</a> (4 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20020610-2055.tar.bz2">
                xwinclip-20020610-2055.tar.bz2</a> (6 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>
                            <p>xwinclip.c - Use select () in
                            ConnectionNumber(pDisplay) and
                            /dev/windows instead of calling
                            XNextEvent, which blocks until the next
                            event. This has many benefits: Windows
                            messages are now processed almost
                            immediately after they come in (the old
                            approach could take minutes), we can
                            catch the X shutdown and restart
                            messages rather than having XNextEvent
                            call exit () when it sees that the
                            connection has closed (we don't
                            currently catch these events), and the
                            clipboard integration code can now be
                            rewritten with the assumption that we
                            can and will see the Windows events
                            when they arrive without an X event
                            immediately preceeding them (which may
                            allow us to stop stealing ownership of
                            the X selection). (Harold L Hunt
                            II)</p>

                            <p>Here is a
                            <a href="http://www.xfree86.org/pipermail/xpert/2001-December/013978.html">
                            description of using select instead of
                            XNextEvent</a>.</p>

                            <p>Here are two examples of how to use
                            select instead of XNextEvent:</p>

                            <ul>
                                <li>
                                <a href="http://www.neosoft.com/tcl/tclhtml/tclFAQ/part2/faq-doc-54.html">
                                Example 1</a></li>

                                <li>
                                <a href="http://www-h.eng.cam.ac.uk/help/tpl/graphics/X/signals.html">
                                Example 2</a> (Towards the bottom
                                of the page, find
                                `ConnectionNumber')</li>
                            </ul>
                        </li>

                        <li>xwinclip.c - Move the X event loop into
                        new function FlushXEventQueue. (Harold L
                        Hunt II)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test03</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2001-10-23 1000 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test03.exe.bz2">
                xwinclip-Test03.exe.bz2</a> (4 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20011023-1000.tar.bz2">
                xwinclip-20011023-1000.tar.bz2</a> (5 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>xwinclip.c - Add UNIXtoDOS () function
                        to change \n to \r\n when copying text from
                        an X client to the Windows clipboard. Call
                        the function right before calling
                        OpenClipboard (). (Harold L Hunt II)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test02</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2001-10-22 1832 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test02.exe.bz2">
                xwinclip-Test02.exe.bz2</a> (4 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20011022-1832.tar.bz2">
                xwinclip-20011022-1832.tar.bz2</a> (5 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>xwinclip.c - Line 327 - Pass strlen
                        (pszGlobalData) instead of strlen
                        (pszGlobalData) + 1 to XChangeProperty ().
                        This eliminates the trailing ^@ when
                        pasting to certain X applications, such as
                        Emacs. (Brian Genisio)</li>

                        <li>xwinclip.c - Add DOStoUNIX () function
                        to change \r\n to \n when copying text from
                        the Windows clipboard to an X client. Call
                        the function right before calling
                        XChangeProperty (). (Harold L Hunt II,
                        Brian Genisio, Cygwin)</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table>

    <h4>Test01</h4>

    <table>
        <tbody>
            <tr>
                <td>Released: 2001-09-02 1252 EDT</td>
            </tr>

            <tr>
                <td>Download binary:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-Test01.exe.bz2">
                xwinclip-Test01.exe.bz2</a> (9 KiB)</td>
            </tr>

            <tr>
                <td>Download source:
                <a href="http://www.msu.edu/~huntharo/xwin/devel/xwinclip/xwinclip-20010902-1252.tar.bz2">
                xwinclip-20010902-1252.tar.bz2</a> (5 KiB)</td>
            </tr>

            <tr>
                <td>Changes:</td>
            </tr>

            <tr>
                <td>
                    <ul>
                        <li>Copy text selections from Windows into
                        Cygwin/X when requested.</li>

                        <li>Copy text selections from Cygwin/X into
                        Windows when requested.</li>
                    </ul>
                </td>
            </tr>
        </tbody>
    </table><!--#include virtual="../../cygx-footer.html" -->
    </body>
</html>
